// The guts for G-Force... This PixPort must be in 8-bit mode to do anything.
void Fade( PixPort& ioDest, char* inGrad );
// When in fullscreen, use this (on mac) to declare what's area needs to be updated on screen
void UnionDirtyRect( const Rect* inDirtyRect );
// When this sprocket is set to 256 colors, you may change the palette it's using any time
// Pre: inColors[].rgb is the RGB of palette entry i.
// Post: The current palette is set to inColors[]
//void SetPalette( ColorSpec inColors[ 256 ] );
long GetX() { return mX; }
long GetY() { return mY; }
static long sMinDepth;
static long sOSDepth;
#define MAX_LINE_WIDTH 32
protected:
static long sCanFullscreen;
long mBytesPerPix;
long mBytesPerRow;
long mX, mY;
long mBackColor;
long mLineWidth;
UtilStr mTempBuf;
char* mBits;
PixMapHandle mBM;
GWorldPtr mWorld;
#if EG_WIN
BITMAPINFO mInfo;
LPDIRECTDRAWSURFACE mContextRef;
LPDIRECTDRAW mDDObj;
#endif
#if EG_MAC
char** mTempHndl;
long mHndlSize;
DSpContextReference mContextRef;
DSpContextAttributes mContext;
#endif
void EraseRect8 ( const Rect* inRect );
void EraseRect16( const Rect* inRect );
void EraseRect32( const Rect* inRect );
static void BoxBlur8 ( char* inSrce, char* inDest, int inBoxWidth, int inWidth, int inHeight, int inSrceRowSize, int inDestRowSize, unsigned long* temp, unsigned long inBackColor );
static void BoxBlur16( char* inSrce, char* inDest, int inBoxWidth, int inWidth, int inHeight, int inSrceRowSize, int inDestRowSize, unsigned long* temp, unsigned long inBackColor );
static void BoxBlur32( char* inSrce, char* inDest, int inBoxWidth, int inWidth, int inHeight, int inSrceRowSize, int inDestRowSize, unsigned long* temp, unsigned long inBackColor );
static void CrossBlur8 ( char* inSrce, int inWidth, int inHeight, int inBytesPerRow, unsigned char* inRowBuf );
static void CrossBlur16( char* inSrce, int inWidth, int inHeight, int inBytesPerRow, unsigned char* inRowBuf );
static void CrossBlur32( char* inSrce, int inWidth, int inHeight, int inBytesPerRow, unsigned char* inRowBuf );
void Line8 ( int sx, int sy, int ex, int ey, long inColor );
void Line16( int sx, int sy, int ex, int ey, long inColor );
void Line32( int sx, int sy, int ex, int ey, long inColor );
void Line8 ( int sx, int sy, int ex, int ey, const RGBColor& inS, long dR, long dG, long dB );
void Line16( int sx, int sy, int ex, int ey, const RGBColor& inS, long dR, long dG, long dB );
void Line32( int sx, int sy, int ex, int ey, const RGBColor& inS, long dR, long dG, long dB );
//static void movePt( int& ioX, int& ioY, int inDx, int inDy, int inDist );